Possible decline of the urban forest in San Jose, California as seen through change in vegetation greenness¶

Image source: Ben Loomis, CC BY 2.0, via Wikimedia Commons..jpg)
'/home/jovyan/earth-analytics/data/camp-fire'
Map of city limits¶
| OBJECTID | FACILITYID | INTID | INCORPORATED | INCORPAREA | LASTUPDATE | NOTES | SHAPE_Length | SHAPE_Area | geometry | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 1 | San Jose | 180.75 | 1688752509000 | 1.429474e+06 | 5.039148e+09 | MULTIPOLYGON (((-121.78237 37.26501, -121.7823... |
Data Citation
City Limits. (n.d.). City of San Jose, California Open GIS Portal. Retrieved October 3, 2023, from https://gisdata-csj.opendata.arcgis.com/datasets/city-limits/explore?location=37.301433,-121.823480,11.00
I downloaded NDVI data from NASA Appeears for the city of San Jose city limit. I only used data from the month of August, when the wild grasses growing in open spaces within the city are senesced, to capture changes in greenness in primarily human-planted and managed vegetation.
<earthpy.appeears.AppeearsDownloader at 0x7ff9d6c1c370>
['/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2014233_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2020201_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2013233_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2016201_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2015217_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2021233_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2022201_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2012201_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2014201_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2022217_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2015233_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2021217_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2017217_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2022233_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2020233_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2017201_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2021201_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2012233_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2017233_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2019201_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2020217_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2018217_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2013217_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2018233_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2015201_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2016217_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2018201_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2019233_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2019217_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2012217_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2016233_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2014217_aid0001.tif', '/home/jovyan/earth-analytics/data/camp-fire/modis-ndvi/MYD13Q1.061_2012199_to_2022243/MYD13Q1.061__250m_16_days_NDVI_doy2013201_aid0001.tif']
[<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3468, 0.3443, 0.3443],
[ nan, nan, nan, ..., 0.4024, 0.4024, 0.4006],
[ nan, nan, nan, ..., 0.3663, 0.3666, 0.3785],
...,
[0.8165, 0.8521, 0.8468, ..., 0.3671, 0.3502, 0.3502],
[0.84 , 0.8238, 0.8238, ..., 0.2364, 0.3018, 0.3112],
[0.7611, 0.7611, 0.7576, ..., 0.4389, 0.3657, 0.3112]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2014-08-21,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3787, 0.3787, 0.3787],
[ nan, nan, nan, ..., 0.4573, 0.4573, 0.3997],
[ nan, nan, nan, ..., 0.4486, 0.444 , 0.4703],
...,
[0.857 , 0.8567, 0.8474, ..., 0.4076, 0.3435, 0.3435],
[0.857 , 0.8332, 0.8332, ..., 0.5288, 0.3857, 0.3403],
[0.8079, 0.8079, 0.7907, ..., 0.5764, 0.5077, 0.3403]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2020-07-19,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3719, 0.364 , 0.364 ],
[ nan, nan, nan, ..., 0.4338, 0.4338, 0.4397],
[ nan, nan, nan, ..., 0.4024, 0.438 , 0.4397],
...,
[0.8787, 0.8839, 0.862 , ..., 0.3832, 0.3599, 0.3599],
[0.8346, 0.8461, 0.8461, ..., 0.3498, 0.2994, 0.3252],
[0.7651, 0.7651, 0.811 , ..., 0.426 , 0.3135, 0.3252]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2013-08-21,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3599, 0.3852, 0.3852],
[ nan, nan, nan, ..., 0.3896, 0.3896, 0.4476],
[ nan, nan, nan, ..., 0.3996, 0.4305, 0.4457],
...,
[0.8291, 0.8291, 0.8233, ..., 0.3733, 0.3428, 0.3428],
[0.7877, 0.7953, 0.7953, ..., 0.2452, 0.3245, 0.3278],
[0.7501, 0.7501, 0.7759, ..., 0.4509, 0.3354, 0.319 ]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2016-07-19,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3606, 0.348 , 0.348 ],
[ nan, nan, nan, ..., 0.4065, 0.4065, 0.3701],
[ nan, nan, nan, ..., 0.4065, 0.4331, 0.4453],
...,
[0.8431, 0.8513, 0.8513, ..., 0.374 , 0.374 , 0.374 ],
[0.8285, 0.8404, 0.8404, ..., 0.2473, 0.3219, 0.3219],
[0.7698, 0.7698, 0.7766, ..., 0.3898, 0.327 , 0.3215]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2015-08-05,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, 0.3837, ..., 0.3735, 0.3651, 0.3651],
[ nan, nan, nan, ..., 0.4111, 0.4111, 0.4111],
[ nan, nan, nan, ..., 0.3856, 0.3936, 0.3936],
...,
[0.758 , 0.815 , 0.815 , ..., 0.3306, 0.3414, 0.3414],
[0.7504, 0.7667, 0.7667, ..., 0.2551, 0.3222, 0.3228],
[0.7554, 0.7554, 0.7714, ..., 0.376 , 0.376 , 0.2976]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2021-08-21,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, 0.3873, ..., 0.3806, 0.3806, 0.3806],
[ nan, nan, nan, ..., 0.4744, 0.4744, 0.4058],
[ nan, nan, nan, ..., 0.412 , 0.4357, 0.4314],
...,
[0.8531, 0.8489, 0.8434, ..., 0.3663, 0.2991, 0.2991],
[0.8085, 0.8147, 0.8147, ..., 0.2476, 0.2998, 0.3188],
[0.7699, 0.7699, 0.7664, ..., 0.2844, 0.338 , 0.3188]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2022-07-20,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3766, 0.3726, 0.3726],
[ nan, nan, nan, ..., 0.4266, 0.4266, 0.4219],
[ nan, nan, nan, ..., 0.4072, 0.4762, 0.4762],
...,
[0.8713, 0.8772, 0.8718, ..., 0.3955, 0.3683, 0.3683],
[0.871 , 0.8761, 0.8761, ..., 0.5501, 0.4478, 0.3096],
[0.8014, 0.8014, 0.8078, ..., 0.5218, 0.5218, 0.2917]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2012-07-19,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3381, 0.3343, 0.3343],
[ nan, nan, nan, ..., 0.3681, 0.3681, 0.4052],
[ nan, nan, nan, ..., 0.362 , 0.4147, 0.4052],
...,
[0.8473, 0.8616, 0.8616, ..., 0.2903, 0.2898, 0.2898],
[0.8252, 0.8384, 0.8384, ..., 0.2734, 0.2903, 0.3022],
[0.7586, 0.7586, 0.7512, ..., 0.279 , 0.3179, 0.3179]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2014-07-20,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3926, 0.3472, 0.3472],
[ nan, nan, nan, ..., 0.4471, 0.4471, 0.435 ],
[ nan, nan, nan, ..., 0.4031, 0.4649, 0.4222],
...,
[0.8497, 0.8483, 0.8371, ..., 0.3617, 0.3648, 0.3648],
[0.7896, 0.7881, 0.7881, ..., 0.2541, 0.2738, 0.3131],
[0.7692, 0.7692, 0.7857, ..., 0.3667, 0.3333, 0.3333]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2022-08-05,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[0.1639, 0.1639, 0.6021, ..., 0.357 , 0.3483, 0.3483],
[ nan, 0.5509, 0.5509, ..., 0.3979, 0.3979, 0.372 ],
[ nan, nan, nan, ..., 0.3811, 0.4208, 0.4488],
...,
[0.8266, 0.8284, 0.8221, ..., 0.3847, 0.319 , 0.319 ],
[0.8265, 0.801 , 0.801 , ..., 0.2097, 0.3285, 0.3439],
[0.7515, 0.7515, 0.7583, ..., 0.4214, 0.3206, 0.3071]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2015-08-21,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3432, 0.3641, 0.3641],
[ nan, nan, nan, ..., 0.419 , 0.419 , 0.3777],
[ nan, nan, nan, ..., 0.386 , 0.4089, 0.3935],
...,
[0.8317, 0.8301, 0.8301, ..., 0.3574, 0.2959, 0.2959],
[0.7969, 0.8065, 0.8065, ..., 0.2466, 0.2983, 0.2959],
[0.7674, 0.7674, 0.7731, ..., 0.2439, 0.3269, 0.3035]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2021-08-05,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3868, 0.3981, 0.3981],
[ nan, nan, nan, ..., 0.4545, 0.4545, 0.4364],
[ nan, nan, nan, ..., 0.4156, 0.4156, 0.4372],
...,
[0.8364, 0.8468, 0.8476, ..., 0.3434, 0.354 , 0.354 ],
[0.8459, 0.8469, 0.8469, ..., 0.3946, 0.402 , 0.3349],
[0.7825, 0.7825, 0.7825, ..., 0.5913, 0.385 , 0.2876]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2017-08-05,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3372, 0.3384, 0.3384],
[ nan, nan, nan, ..., 0.3825, 0.3825, 0.359 ],
[ nan, nan, nan, ..., 0.3451, 0.3931, 0.4064],
...,
[0.8321, 0.8371, 0.8284, ..., 0.3152, 0.3284, 0.3284],
[0.8218, 0.7591, 0.7591, ..., 0.2203, 0.3055, 0.3058],
[0.7561, 0.7561, 0.8087, ..., 0.4652, 0.348 , 0.2779]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2022-08-21,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, 0.5056, ..., 0.3519, 0.3419, 0.3419],
[ nan, nan, nan, ..., 0.386 , 0.386 , 0.3626],
[ nan, nan, nan, ..., 0.406 , 0.406 , 0.4148],
...,
[0.8422, 0.8439, 0.8283, ..., 0.4579, 0.3799, 0.3799],
[0.7884, 0.7948, 0.7948, ..., 0.4469, 0.3932, 0.3323],
[0.7884, 0.7884, 0.7942, ..., 0.4399, 0.3905, 0.3617]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2020-08-20,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, 0.078 , ..., 0.3792, 0.3792, 0.3792],
[ nan, nan, nan, ..., 0.4473, 0.4473, 0.4473],
[ nan, nan, nan, ..., 0.4115, 0.4437, 0.431 ],
...,
[0.8472, 0.8428, 0.83 , ..., 0.3591, 0.3325, 0.3325],
[0.8453, 0.8428, 0.8428, ..., 0.5491, 0.3365, 0.3365],
[0.7963, 0.7963, 0.7961, ..., 0.4831, 0.4295, 0.3175]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2017-07-20,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, 0.3077, ..., 0.3745, 0.3622, 0.3622],
[ nan, nan, nan, ..., 0.4324, 0.4324, 0.411 ],
[ nan, nan, nan, ..., 0.4024, 0.41 , 0.4033],
...,
[0.8504, 0.8503, 0.8344, ..., 0.3282, 0.3445, 0.3445],
[0.8504, 0.8179, 0.8179, ..., 0.2868, 0.3178, 0.3221],
[0.8024, 0.8024, 0.8 , ..., 0.4454, 0.3376, 0.3045]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2021-07-20,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3369, 0.3518, 0.3518],
[ nan, nan, nan, ..., 0.3786, 0.3786, 0.4249],
[ nan, nan, nan, ..., 0.3738, 0.4193, 0.4315],
...,
[0.9094, 0.9108, 0.9108, ..., 0.348 , 0.3419, 0.3419],
[0.8947, 0.8504, 0.8504, ..., 0.5105, 0.3413, 0.3251],
[0.8441, 0.8441, 0.874 , ..., 0.5535, 0.3485, 0.2819]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2012-08-20,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3842, 0.3577, 0.3577],
[ nan, nan, nan, ..., 0.4067, 0.4067, 0.4001],
[ nan, nan, nan, ..., 0.4091, 0.4578, 0.4578],
...,
[0.849 , 0.8566, 0.8455, ..., 0.3665, 0.3844, 0.3844],
[0.8445, 0.8433, 0.8433, ..., 0.395 , 0.395 , 0.317 ],
[0.7882, 0.7882, 0.7749, ..., 0.4675, 0.4243, 0.3222]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2017-08-21,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, 0.4283, ..., 0.4223, 0.4041, 0.4041],
[ nan, nan, nan, ..., 0.4917, 0.4917, 0.4392],
[ nan, nan, nan, ..., 0.4621, 0.4664, 0.5027],
...,
[0.8347, 0.8563, 0.8476, ..., 0.3673, 0.4078, 0.4078],
[0.8521, 0.8521, 0.8521, ..., 0.241 , 0.3301, 0.3355],
[0.8064, 0.8064, 0.8183, ..., 0.4652, 0.3972, 0.3221]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2019-07-20,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3593, 0.3626, 0.3626],
[ nan, nan, nan, ..., 0.405 , 0.405 , 0.405 ],
[ nan, nan, nan, ..., 0.4 , 0.4573, 0.4495],
...,
[0.8887, 0.881 , 0.8718, ..., 0.3874, 0.3874, 0.3874],
[0.8824, 0.8541, 0.8541, ..., 0.4794, 0.4794, 0.3531],
[0.8145, 0.8145, 0.8439, ..., 0.5587, 0.5457, 0.3494]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2020-08-04,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3823, 0.3823, 0.3823],
[ nan, nan, nan, ..., 0.4564, 0.4564, 0.4564],
[ nan, nan, nan, ..., 0.3951, 0.4181, 0.4263],
...,
[0.8269, 0.8656, 0.8534, ..., 0.377 , 0.3619, 0.3619],
[0.8687, 0.8599, 0.8599, ..., 0.2945, 0.3158, 0.3197],
[0.8111, 0.8111, 0.8127, ..., 0.4845, 0.3083, 0.2919]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2018-08-05,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, 0.4227, ..., 0.4014, 0.3781, 0.3781],
[ nan, nan, nan, ..., 0.4509, 0.4509, 0.4204],
[ nan, nan, nan, ..., 0.4067, 0.4373, 0.428 ],
...,
[0.8312, 0.8385, 0.8385, ..., 0.3728, 0.4132, 0.4132],
[0.8285, 0.8242, 0.8242, ..., 0.3866, 0.3149, 0.3201],
[0.7537, 0.7537, 0.7622, ..., 0.4698, 0.4022, 0.3192]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2013-08-05,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.387 , 0.3842, 0.3842],
[ nan, nan, nan, ..., 0.461 , 0.461 , 0.4281],
[ nan, nan, nan, ..., 0.4191, 0.429 , 0.4344],
...,
[0.8737, 0.874 , 0.874 , ..., 0.323 , 0.3312, 0.3312],
[0.8397, 0.838 , 0.838 , ..., 0.275 , 0.3103, 0.3231],
[0.7989, 0.7989, 0.8134, ..., 0.2049, 0.3955, 0.2817]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2018-08-21,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, 0.3575, ..., 0.381 , 0.381 , 0.381 ],
[ nan, nan, nan, ..., 0.4307, 0.4307, 0.4307],
[ nan, nan, nan, ..., 0.3878, 0.4304, 0.4257],
...,
[0.8137, 0.8427, 0.8335, ..., 0.3473, 0.3811, 0.3811],
[0.841 , 0.8427, 0.8427, ..., 0.2518, 0.3173, 0.3173],
[0.7596, 0.7596, 0.7868, ..., 0.4345, 0.321 , 0.3053]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2015-07-20,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3802, 0.3756, 0.3756],
[ nan, nan, nan, ..., 0.4375, 0.4375, 0.4375],
[ nan, nan, nan, ..., 0.3814, 0.4223, 0.4234],
...,
[0.859 , 0.856 , 0.8464, ..., 0.3259, 0.3259, 0.3259],
[0.859 , 0.8242, 0.8242, ..., 0.2444, 0.3271, 0.3297],
[0.7852, 0.7852, 0.8117, ..., 0.5077, 0.3419, 0.3108]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2016-08-04,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, 0.4172, ..., 0.3997, 0.3842, 0.3842],
[ nan, nan, nan, ..., 0.4477, 0.4477, 0.4445],
[ nan, nan, nan, ..., 0.4142, 0.4721, 0.4562],
...,
[0.8493, 0.8592, 0.8656, ..., 0.3368, 0.368 , 0.368 ],
[0.8778, 0.8778, 0.8778, ..., 0.4541, 0.3576, 0.3273],
[0.8138, 0.8138, 0.806 , ..., 0.5019, 0.34 , 0.2942]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2018-07-20,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.4052, 0.4069, 0.4069],
[ nan, nan, nan, ..., 0.4624, 0.4624, 0.4411],
[ nan, nan, nan, ..., 0.4727, 0.4727, 0.4943],
...,
[0.8476, 0.8769, 0.8647, ..., 0.4034, 0.3285, 0.3285],
[0.8752, 0.854 , 0.854 , ..., 0.258 , 0.3111, 0.3299],
[0.8279, 0.8279, 0.8364, ..., 0.2598, 0.347 , 0.3435]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2019-08-21,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3804, 0.3943, 0.3943],
[ nan, nan, nan, ..., 0.4284, 0.4284, 0.4912],
[ nan, nan, nan, ..., 0.4686, 0.5078, 0.5079],
...,
[0.8644, 0.8644, 0.8593, ..., 0.3503, 0.4038, 0.4038],
[0.8615, 0.8362, 0.8362, ..., 0.2517, 0.3426, 0.3546],
[0.8071, 0.8071, 0.8199, ..., 0.4742, 0.3717, 0.3073]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2019-08-05,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3867, 0.3659, 0.3659],
[ nan, nan, nan, ..., 0.4625, 0.4625, 0.4221],
[ nan, nan, nan, ..., 0.4096, 0.4625, 0.4319],
...,
[0.8576, 0.8827, 0.8741, ..., 0.3692, 0.3687, 0.3687],
[0.8672, 0.8499, 0.8499, ..., 0.496 , 0.496 , 0.3266],
[0.7925, 0.7925, 0.7951, ..., 0.4843, 0.4767, 0.3112]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2012-08-04,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, 0.4062, ..., 0.3838, 0.3638, 0.3638],
[ nan, nan, nan, ..., 0.4203, 0.4203, 0.4261],
[ nan, nan, nan, ..., 0.3965, 0.4472, 0.4266],
...,
[0.8491, 0.8515, 0.845 , ..., 0.367 , 0.3605, 0.3605],
[0.8292, 0.8341, 0.8341, ..., 0.2324, 0.3211, 0.3345],
[0.7763, 0.7763, 0.7746, ..., 0.5049, 0.3697, 0.3003]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2016-08-20,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3473, 0.3534, 0.3534],
[ nan, nan, nan, ..., 0.386 , 0.386 , 0.4028],
[ nan, nan, nan, ..., 0.3575, 0.3885, 0.4028],
...,
[0.8244, 0.8372, 0.831 , ..., 0.3199, 0.3327, 0.3327],
[0.7884, 0.8017, 0.8017, ..., 0.2544, 0.3138, 0.3272],
[0.7237, 0.7237, 0.7237, ..., 0.4593, 0.3834, 0.2898]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2014-08-05,
<xarray.DataArray 'NDVI' (date: 1, y: 168, x: 222)>
array([[[ nan, nan, nan, ..., 0.3998, 0.3998, 0.3998],
[ nan, nan, nan, ..., 0.4526, 0.4526, 0.4526],
[ nan, nan, nan, ..., 0.4118, 0.4605, 0.4605],
...,
[0.8631, 0.8682, 0.8732, ..., 0.4287, 0.3685, 0.3685],
[0.878 , 0.878 , 0.878 , ..., 0.5072, 0.4667, 0.3647],
[0.8039, 0.8039, 0.8039, ..., 0.618 , 0.5441, 0.3423]]],
dtype=float32)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2013-07-20]
<xarray.Dataset>
Dimensions: (x: 222, y: 168, date: 33)
Coordinates:
band int64 1
* x (x) float64 -122.0 -122.0 -122.0 ... -121.6 -121.6 -121.6
* y (y) float64 37.47 37.47 37.47 37.46 ... 37.13 37.13 37.12 37.12
spatial_ref int64 0
* date (date) datetime64[ns] 2012-07-19 2012-08-04 ... 2022-08-21
Data variables:
NDVI (date, y, x) float32 nan nan nan nan ... 0.4652 0.348 0.2779NDVI should take values between -1.0 and 1.0. Let's make sure that is the case here.
(array([ 1000., 1538., 16312., 125741., 393000., 257370., 161454.,
119786., 94390., 31379.]),
array([-0.19939999, -0.08719999, 0.025 , 0.1372 , 0.24939999,
0.36159998, 0.47379997, 0.58599997, 0.69819999, 0.81039995,
0.92259997]),
<BarContainer object of 10 artists>)
A city report mentions that the urban forest canopy cover in San Jose has declined by 1.82% from 2012 to 2018. Let's see if NDVI within the city limits changed from 2012 to 2022.
EPSG:4326 EPSG:4326
<Axes: title={'center': 'band = 1, spatial_ref = 0'}, xlabel='x', ylabel='y'>
Did the NDVI drop more inside the city limits than nearby areas?¶
| geometry | |
|---|---|
| 0 | MULTIPOLYGON (((-122.04607 37.12272, -122.0460... |
( NDVI
year
2012 0.323291
2013 0.330175
2014 0.310622
2015 0.306544
2016 0.313752
2017 0.319050
2018 0.311588
2019 0.330538
2020 0.316916
2021 0.304515
2022 0.299192,
NDVI
year
2012 0.477988
2013 0.480093
2014 0.460221
2015 0.472924
2016 0.476541
2017 0.474574
2018 0.474207
2019 0.503266
2020 0.469537
2021 0.440626
2022 0.444641)
How did August NDVI in San Jose change from 2012 to 2022?¶
The difference in NDVI between inside and outside city limits increased over time
This could suggest that the urban greenness of San Jose is declining faster than surrounding cities. However, this analysis does not differentiate between adjacent city areas and adjacent areas of naturally existing forest, which are likely to exhibit different NDVI patterns. Therefore, it is not entirely possible to know from this analysis how the urban greenness of San Jose is changing over time compared to other nearby cities.